草庐IT

c++ - 完全纯虚拟类的 Vtable 放置

全部标签

c++ - 绘画后winapi窗口不刷新

您好,我用这个创建了一个窗口:WNDCLASSEXWndClass={0};if(WndClass.cbSize==0){WndClass.cbSize=sizeof(WNDCLASSEX);WndClass.style=CS_DBLCLKS;WndClass.lpfnWndProc=WindowProcedure;WndClass.cbClsExtra=0;WndClass.cbWndExtra=0;WndClass.hInstance=GetModuleHandle(NULL);WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);WndCla

c - 在 Windows 中用 C 守护进程

我想在Windows的C中创建一个在后台运行的进程(守护进程)。我知道如何在Linux中制作它,但在windows中,相同的代码不起作用。我需要做出哪些改变。我在Linux中使用的代码是:if(fork()){exit(0);}umask(0);setsid();close(0);close(1);close(2); 最佳答案 您必须编写服务(处理程序)才能在Windows中实现此目的...搜索StartServiceCtrlDispatcherA 关于c-在Windows中用C守护进程

c++ - 您如何输出从右到左阅读的语言?

我很好奇如何处理从右到左阅读的语言(例如阿拉伯语、希伯来语)的输出。C/C++或我见过的任何语言中的几乎所有内容都是以从左到右输出为前提的。是否有系统调用或其他东西会强制终端,例如,从右到左打印?即便如此,在程序中,字符串的编码方式类似于string("thisisastring")。难道它不需要编写类似字符串(“字符串a是这个”)或一些反向函数的代码吗? 最佳答案 我怀疑在实践中,配置为从右到左语言的系统将具有从右到左打印的终端设置,因此C/C++程序的内部不必担心它.如果这不能让您放心,这里有一个hack:stringstr="

c++ - 强制无线网卡只扫描一个 channel (以编程方式)

我在Windows(VisualStudio)中使用Wlanapi.dll,默认的WlanScan函数始终扫描所有channel中的wifi网络。是否有将无线网卡固定到一个wifi信道的命令?原因是为了加快扫描速度并更加准确。过滤结果无效。 最佳答案 拥有多个channel的原因是,如果某个特定的channel充满噪音(来自其他2.4Ghz来源:微波炉、无绳电话、蓝牙设备、无线摄像机、室外微波链路、无线游戏Controller),WiFi将改变channel、Zigbee设备、荧光灯、WiMAX等)。即使您可以将WiFi卡限制为1个

c - 判断两个文件是否属于同一个卷

我在一些ntfs硬链接(hardlink)项目中工作。我想知道如何确定两个文件(具有完整路径)是否属于同一卷。 最佳答案 查找与文件关联的卷信息的几个选项:找到这两个文件的根路径,并使用GetVolumeInformation查找卷名称。打开文件句柄并将其传递给GetVolumeInformationByHandleW.请注意,GetVolumeInformationByHandleW需要Vista,即它在XP上不可用。通过比较卷序列号检查是否相等。 关于c-判断两个文件是否属于同一个卷

windows - 为什么有时 .data 部分的虚拟大小大于原始大小?

最近我发现,PE中的.data部分的虚拟大小可以大于原始大小(在文件中)。这是相当令人吃惊的。有人说这是某处未初始化数据的结果。但是在分析了一些PE之后,实在找不到这个多余的数据。以下是某些程序的PEDump结果的链接:"Helloworld"PEDump如您所见,.data部分的虚拟大小大于原始大小。为什么在这个特定示例中会这样? 最佳答案 任何初始化数据的值都存储在该部分中,如果二进制文件想在内存中为任何未初始化数据保留空间,则虚拟大小将大于原始数据大小。您不会在文件中找到此数据,因为它不需要存在于此。引用数据(在代码部分中)的

c - Frama-C:在 Cygwin/Windows 8.1 上编译

对于那些在windows上编译C的人来说一个简单的问题!我想使用最新版本的Frama-CWindows8上的C静态分析器及其GUI。据我所知,具有Windows安装程序的最新版本是Boron,它已有3-4年的历史。所以看起来我需要自己编译它(版本Fluorine3)。然而,我在前几步绊倒了。Frama-CFluorine3的快速编译说明是here.第1步:安装OCaml。我已经从here安装了Windows版本.第1b步:我相信第1步安装了Gtk等。第2b步:运行:./configure--prefixC:/windows/path/with/direct/slash&&make&&m

c - PsSetCreateProcessNotifyRoutine 回调

进程的主线程是在创建后立即开始执行,还是在回调例程完成后开始执行? 最佳答案 这似乎没有记录,这意味着不能保证线程不会在回调例程返回之前开始执行。但是,CreateProcessNotifyEx的文档常规说:Foranewprocess,theCreateProcessNotifyExroutineiscalledaftertheinitialthreadiscreated,butbeforethethreadbeginsrunning.Thedrivercancausetheprocess-creationoperationtof

windows - 直接访问 Windows 虚拟打印机端口

似乎有一种方法可以在不使用专用打印机驱动程序的情况下直接向WindowsUSB虚拟打印机端口(例如USB001)写入和读取数据。有人知道怎么做吗? 最佳答案 最简单的方法是我在原始评论中提出的方法。您可以使用您想要的任何驱动程序创建USB打印机(通用文本总是工作良好),然后将其共享。从这里您可以使用类似的方式连接到共享netuselpt1\\your_workstation\printer_share然后您可以打印到lpt1(或复制到lpt1),您将利用Windows假脱机程序将文件获取到那里。另一种选择是在代码中执行此操作,将数据

在 Windows 平台上创建 PostgreSQL C 扩展

我在从命令行和VisualStudio中尝试过让postgres链接和/或在Windows上运行的一些简单测试函数时遇到问题。我发现很少有文档,也没有可用的模板。我不习惯Windows中的编译工具,而且我是postgres的新手,所以我可能会遗漏一些非常基本的东西。任何指示将不胜感激!使用:Windows8.0(64位)、cl.exe18.00.21005.1、link.exe12.00.21005.1、PostgreSQLv.9.3.4(二进制安装)。这是文档中的示例代码,只是为了简单起见,我只添加了PGDLLEXPORT调用:#include"postgres.h"#include